package com.atguigu.tingshu.user.config;

import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

@Component
public class WeChatMpConfig {
    @Autowired
    private WechatAccountConfig wechatAccountConfig;

    /**
     * 创建并配置WxMaService实例
     *
     * 该方法是一个Spring框架的Bean定义方法，用于创建和配置WxMaService实例
     * WxMaService是用于操作微信小程序的Service接口，WxMaServiceImpl是其默认实现类
     * 通过WxMaDefaultConfigImpl实例来设置小程序的AppID和AppSecret，以完成对WxMaService实例的配置
     *
     * @return WxMaService实例，用于进行微信小程序相关的操作
     */
    @Bean
    public WxMaService wxMaService(){
        // 创建WxMaConfig实例并设置小程序的AppID和AppSecret
        WxMaDefaultConfigImpl wxMaConfig = new WxMaDefaultConfigImpl();
        wxMaConfig.setAppid(wechatAccountConfig.getAppId());
        wxMaConfig.setSecret(wechatAccountConfig.getAppSecret());

        // 创建WxMaService实例并设置其配置信息
        WxMaServiceImpl wxMaService = new WxMaServiceImpl();
        wxMaService.setWxMaConfig(wxMaConfig);

        // 返回配置好的WxMaService实例
        return wxMaService;
    }
}
